home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / ASSEMBLE / 2743.ZIP / CPUSPEC3 < prev    next >
Text File  |  1980-01-01  |  5KB  |  118 lines

  1.  
  2.  
  3.                    'COMPUTER' SPECIFICATION
  4.                    ------------------------
  5.  
  6.     This is a program that runs on IBM PC compatible
  7.     computers, simulating a simple microprocessor, showing
  8.     data flows around the registers and 'bus' systems.
  9.  
  10.     The CPU has
  11.         two data registers (A and B),
  12.         program counter PC,
  13.         instruction register IR,
  14.         two temporary data registers T1 and T2
  15.                      used for ALU operations,
  16.         address register AD used for direct addressing
  17.                      and JMP instructions,
  18.         and stack pointer SP for CALL, PUSH and POP.
  19.  
  20.     The computer uses 'micro-code' to perform its
  21.     operations. The user has a choice whether to display
  22.     these micro-steps. The program runs a little faster when
  23.     not displaying the micro-step text.
  24.  
  25.     The instruction set and format have been chosen to be
  26.     similar to Intel format, to provide a 'stepping stone'
  27.     to the 'real thing'. Also, as well as Intel's MOV
  28.     mnemonic, Zilog's LD, BASIC's LET, and MOVE, MOVETO,
  29.     COPY, and COPYTO can be used for the users source code.
  30.     All except LET are translated to MOV before assembly
  31.     translation to machine code. LET produces a different
  32.     machine-code number but performs the same
  33.     micro-instruction steps as the corresponding MOV.
  34.  
  35.     All operation codes, data and addresses are 8-bit,
  36.     limiting memory to 256 bytes. Not many of my students'
  37.     programs have exceeded this, so should be adequate for
  38.     the intended application. Input and output ports read
  39.     from, and write to, variables, some of which are
  40.     predefined, so effectively provide another 150 or so
  41.     locations which can be used for a users data.
  42.  
  43.     The program enables the level of complexity to be
  44.     chosen, as detailed under COMPLEXITY LEVELS.
  45.  
  46.     Model I/O addresses 0 to $F ($ indicates hex) can be
  47.     assigned to real i/o ports. The 'screen' is I/O mapped
  48.     or can be written to as a normal screen which scrolls
  49.     when necessary. Details are under Input and Output Port
  50.     Definitions.
  51.  
  52.     Debug allows control of the 'microprocessor' in a
  53.     way similar to MicroSoft's Debug.
  54.  
  55.     This would be useful for many schools and colleges
  56.     having IBM PC compatible machines, but wanting to teach
  57.     simplified assembler programming. This may be adequate
  58.     for all of the assembler programming of a first-year,
  59.     part time course (one BTEC unit).
  60.  
  61.  
  62.  
  63.     The work consists of
  64.     (1) CPU24.EXE model computer program
  65.     (2) ASM13.EXE assembler program to produce machine
  66.         code from assembler mnemonics.
  67.     (3) OPCODESC.CPU used by both (1) and (2) which has
  68.               (a) text for microcode steps (preceded by !)
  69.           and (b) a list of opcodes and corresponding
  70.                   microcode steps. (The first character in
  71.                   the microcode list is used by the
  72.                   assembler.)
  73.      (4) a number of machine-code object programs (*.mc)
  74.          assembled from source programs (*.asm).
  75.  
  76.  
  77.     The CPU program reads machine codes in ASCII hex format
  78.     which could be produced using any text editor. This
  79.     simplifies the direct production of a machine-code
  80.     program if a teacher wished to set this as a student
  81.     task before using the assembler. It also means that the
  82.     assembler need only produce one output file, which
  83.     serves as both a machine-code file and as a list file,
  84.     reporting memory locations used, content, and source
  85.     code.
  86.  
  87.     The CPU program looks for pairs of hex digits (starting
  88.     at the fourth character position on a line, to enable
  89.     the assembler to list memory locations used) separated
  90.     by spaces or commas, and abandons the line when any
  91.     non-legal character is encountered (including a
  92.     semi-colon indicating comment at any of the first four
  93.     characters of the line).
  94.  
  95.     A teacher may wish to set a machine-code program as an
  96.     initial exercise. To simplify this, an assembler ORG
  97.     pseudo-operation is implemented by an asterisk ('*') as
  98.     the first character on a line, followed immediately by a
  99.     pair of hex digits. This sets the memory address
  100.     counter, and causes data to be loaded into memory from
  101.     location specified. This means that instead of
  102.     calculating address for subroutines precisely, a rough
  103.     count can be made, then add a few and set subroutine
  104.     address with asterisk, so that calculations do not need
  105.     to be exact, and can allow minor program modifications
  106.     without changing subroutine locations. ORG is of
  107.     doubtful value when using the assembler.
  108.  
  109.     Debug commands change the content of registers or memory
  110.     locations from the screen, for debugging, and to enable
  111.     a machine-code program to be entered directly as an
  112.     initial programming exercise. The 'computer' will
  113.     single-step or free-run to a breakpoint.
  114.  
  115.  
  116.     David Stonebanks, 171 Fairview Road, Stevenage, SG1 2NE
  117.     1 June 91
  118.